package com.witmore.neutron.ai.web.enums;

/**
 * 角色类型枚举
 * 
 * @author 豆子高
 * @date 2025/1/2
 */
public enum RoleTypeEnum {

    /**
     * 超级管理员
     */
    SUPER_ADMIN(0, "超级管理员"),

    /**
     * 服务商管理员
     */
    SERVICE_PROVIDER_ADMIN(1, "服务商管理员"),

    /**
     * 普通用户
     */
    NORMAL_USER(2, "普通用户");

    private final Integer code;
    private final String description;

    RoleTypeEnum(Integer code, String description) {
        this.code = code;
        this.description = description;
    }

    public Integer getCode() {
        return code;
    }

    public String getDescription() {
        return description;
    }

    /**
     * 根据code获取枚举
     * @param code 角色类型代码
     * @return 角色类型枚举
     */
    public static RoleTypeEnum getByCode(Integer code) {
        if (code == null) {
            return null;
        }
        for (RoleTypeEnum roleType : values()) {
            if (roleType.getCode().equals(code)) {
                return roleType;
            }
        }
        return null;
    }

    /**
     * 判断是否为有效的角色类型代码
     * @param code 角色类型代码
     * @return 是否有效
     */
    public static boolean isValidCode(Integer code) {
        return getByCode(code) != null;
    }
}